#!/usr/bin/perl
#
# Permite formatear correctamente el fichero AGEDABOX.MacsRegistered 
# para poder ordenarlo etc...
#

# Comprobar argumentos...
if ( 0 != $#ARGV ) {
  print STDERR "ERROR: No has pasado el fichero a formatear\n";
  exit 2;
}

# Abrir fichero
open(LEASES,"grep '^|d|' $ARGV[0] | sort -t@ -k3 |" ) || die "ERROR: No puedo abrir [".$ARGV[0]."]\n";

# Para la conversion de fechas
use Date::Parse;
# Para el formateo de IPs
use Socket;

$formatedLine="";
$lastMac="";
while( chomp($linea=<LEASES>) ) {    
  
   if ( $linea=~m/^[^\@]+\@([^\@]+)\@([^\@]+)\@([^\@]+)\@([^\@]+)/ ) {
      $pc=$1;
      $mac=lc($2);
      $fecha=$4;
      if ($fecha=~m/ el (\d+)\/(\d+)\/(\d+) a las (\d\S+) desde/ ) {
         $unixtime=str2time("$3/$2/$1 $4");
      }
      if ( ( "" ne $lastMac ) && ( $mac ne $lastMac ) ) {
         print "$formatedLine\n";
      }
      $formatedLine="$unixtime#$mac#$pc#$fecha#";
      $lastMac=$mac;
   }
}
print "$formatedLine\n";
close(LEASES);


